/**  
 * @Title: LoginTokenService.java
 * @Package org.wk.user.service
 * @Description: TODO【】
 * @author df.w 
 * @date 2018年5月5日 上午10:34:04
 * @version V1.0  
 */ 

package org.wk.user.service;

import org.wk.user.view.TokenModel;
import org.wk.user.view.UserDetailVo;

/**
 * @ClassName	: LoginTokenService
 * @Package		：org.wk.user.service
 * @Author df.w 
 * @Create Time	：2018年5月5日 上午10:34:04
 * @Description	: 
 */

public interface LoginTokenService {
	
	
	/**
	 * @Title		: generatorToken
	 * @Param		: @param userId 用户ID
	 * @Param		: @param nickName 昵称
	 * @Param		: @param headSculpture 头像
	 * @Param		: @return
	 * @Return Type 	：String
	 * @Description	: 生成Token
	 */ 
	public String generatorToken(String userId, String nickName, String headSculpture);
	
	
	/**
	 * @Title		: getByToken
	 * @Param		: @param token
	 * @Param		: @return
	 * @Return Type 	：UserDetailVo
	 * @Description	: 获取用户登录信息
	 */ 
	public UserDetailVo getLoginInfoByToken(String token);

	/**
	 * 创建一个token关联上指定用户
	 * @param userId 指定用户的id
	 * @return 生成的token
	 */
	public TokenModel createToken(String userId);

	/**
	 * 检查token是否有效
	 * @param model token
	 * @return 是否有效
	 */
	public boolean checkToken(TokenModel model);

	/**
	 * 从字符串中解析token
	 * @param authentication 加密后的字符串
	 * @return
	 */
	public TokenModel getToken(String authentication);

	/**
	 * 清除token
	 * @param userId 登录用户的id
	 */
	public void deleteToken(String userId);
	
}
